a58d06c3f413b136b6afcb02a70cc0242d3a7446,graylog2-server/src/main/java/org/graylog2/indexer/searches/Searches.java,Searches,fieldHistogram,#String#String#DateHistogramInterval#String#TimeRange#,355
Before Change
.valueField(field)
.interval(interval.toString().toLowerCase());
fb.facetFilter(standardFilters(range, filter));
QueryStringQueryBuilder qs = queryString(query);
qs.allowLeadingWildcard(configuration.isAllowLeadingWildcardSearches());
SearchRequestBuilder srb = c.prepareSearch();
final Set<String> affectedIndices = IndexHelper.determineAffectedIndices(indexRangeService, deflector, range);
srb.setIndices(affectedIndices.toArray(new String[affectedIndices.size()]));
srb.setQuery(qs);
srb.addFacet(fb);
SearchResponse r;
final SearchRequest request = srb.request();
try {
r = c.search(request).actionGet();
} catch (org.elasticsearch.action.search.SearchPhaseExecutionException e) {
throw new FieldTypeException(e);
}
return new FieldHistogramResult((DateHistogramFacet) r.getFacets().facet("histogram"), query, request.source(),
interval, r.getTook());
}
After Change
}
public HistogramResult fieldHistogram(String query, String field, DateHistogramInterval interval, String filter, TimeRange range) throws FieldTypeException {
FilterAggregationBuilder builder = AggregationBuilders.filter(AGG_FILTER)
.subAggregation(
AggregationBuilders.dateHistogram(AGG_HISTOGRAM)
.field("timestamp")
.subAggregation(AggregationBuilders.stats(AGG_STATS).field(field))
.interval(interval.getPeriod().toStandardDuration().getMillis())
)
.filter(standardFilters(range, filter));
QueryStringQueryBuilder qs = queryString(query);
qs.allowLeadingWildcard(configuration.isAllowLeadingWildcardSearches());
SearchRequestBuilder srb = c.prepareSearch();
final Set<String> affectedIndices = IndexHelper.determineAffectedIndices(indexRangeService, deflector, range);
srb.setIndices(affectedIndices.toArray(new String[affectedIndices.size()]));
srb.setQuery(qs);
srb.addAggregation(builder);
SearchResponse r;
final SearchRequest request = srb.request();
try {
r = c.search(request).actionGet();
} catch (org.elasticsearch.action.search.SearchPhaseExecutionException e) {
throw new FieldTypeException(e);
}
final Filter f = r.getAggregations().get(AGG_FILTER);
return new FieldHistogramResult(
(DateHistogram) f.getAggregations().get(AGG_HISTOGRAM),
query,
request.source(),
interval,